package cn.edu.ncu.housinghub.entity.chatsession;

import cn.edu.ncu.housinghub.entity.user.User;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.time.LocalDateTime;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;

/**
 * 会话消息表（用户聊天消息）
 */
@Data
public class ChatMessage {
    private Long messageId; // 主键

    @NotNull(message = "聊天会话不能为空")
    private Long sessionId; // 会话ID

    @NotNull(message = "发送者不能为空")
    private Long senderId; // 发送者

    @NotNull(message = "接收者不能为空")
    private Long receiverId; // 接收者

    @NotBlank(message = "消息内容不能为空")
    private String content; // 消息内容

    @NotNull(message = "消息类型不能为空")
    private Integer messageType; // 消息类型（1=文本，2=图片，3=视频，4=文件）

    @NotNull(message = "消息状态不能为空")
    private Integer isRead; // 消息状态（0=未读，1=已读）

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime sendTime; // 发送时间
    private Boolean isDeleted; // 软删除标记
}
